Integrated circuit memory devices are widely used in consumer and commercial applications. As is well known to those having skill in the art, integrated circuit memory devices include, but are not limited to, Dynamic Random Access Memory (DRAM) devices, Static Random Access Memory (SRAM) devices, Masked Read-Only Memory (MROM) devices, Programmable Read-Only Memory (PROM) devices, Erasable Programmable Read-Only Memory (EPROM) devices and Electrically Erasable Programmable Read-Only Memory (EEPROM) devices.
Memories, such as Flash EEPROM (erasable programmable read-only memory) devices, have been widely used in a wide range of digital applications as non-volatile, electrically erasable and programmable memory. Flash memory devices typically use one-transistor memory cells that allow for high memory densities, high reliabilities, and low power consumption. Thus, flash memory devices have been used in many low-power applications, such as battery-backed or embedded memory circuits. Common uses of non-volatile memory include portable computers, personal digital assistant devices, digital cameras, and cellular phones. In these devices, both program code and system data, such as configuration parameters and other firmware, are often stored in flash memory because of the compact storage and relative ease of software upgradeability. The use of flash memory to store upgradeable data has necessitated the development of mechanisms to protect the data from unintended erasure or reprogramming.
With conventional flash memory devices, erasing stored code or data required erasing the entire device. More recent devices, however, are based on a block-erasure architecture in which the flash memory is divided into blocks that are loosely analogous to the disk sectors recognized by disk operating systems. The block-based architecture allows file systems to erase blocks of flash memory instead of the whole device. The block architecture also allows users to flexibly erase different portions of code or data in a flash memory device. For example, critical system code, such as boot code, can be stored in a lockable or write-protection boot block of the device, while other blocks are allocated to other portions of code or data.
To ensure the integrity of a block-based flash memory device, block protection schemes are used to protect stored data when the memory is modified through program or erase operations. Memory blocks are protected against unintended writes when data is written in the device or when a new code segment is updated. Likewise, data blocks are protected when other data blocks are modified or when code updates occur. Code blocks may also be protected against program virus or software abnormalities.
An example of a system for protecting an unintended write operation is disclosed in U.S. Pat. No. 6,209,069 entitled “METHOD AND APPARATUS USING VOLATILE LOCK ARCHITECTURE FOR INDIVIDUAL BLOCK LOCKING ON FLASHMEMORY.” A block control circuit described in the '069 patent is illustrated in FIG. 1. Referring to FIG. 1, a block control circuit 206 includes a plurality of digital registers 302–306 each corresponding to memory blocks. Each register or latch controls a lock or write-protection state of a corresponding lockable memory block.
The block control circuit 206 generates appropriate control signals to control a flash memory array.
The block control circuit 206 may, however, reduce the ability to provide a high-density flash memory device. Such may be the case because several thousand memory blocks may be used in forming a NAND-type flash memory device. For example, a 128M NAND-type flash memory device includes 1024 memory blocks. In order to store lock or write-protection information for 1024 memory blocks, the same number of registers as memory blocks are used in the system illustrated in FIG. 1. As memory capacity increases, the number of memory blocks also increases. Accordingly, it may be difficult to utilize the block control circuit using registers in a high-density flash memory device.